import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class Serialization {
    // 序列化文件路径
    private static final String SERIALIZE_FILE_PATH = "d:/zuo ye/chenyi_six/test.txt";

    public static void main(String[] args) {
        // 创建需要序列化的对象（参数与构造方法匹配）
        Person person = new Person("刘鑫", 22, 160, 60, "女", "54269874");

        // 检查并创建父目录（避免路径不存在导致的错误）
        File file = new File(SERIALIZE_FILE_PATH);
        if (!file.getParentFile().exists()) {
            boolean isDirCreated = file.getParentFile().mkdirs();
            if (isDirCreated) {
                System.out.println("目录创建成功：" + file.getParentFile().getAbsolutePath());
            } else {
                System.out.println("目录创建失败，可能没有权限");
                return;
            }
        }

        // 使用try-with-resources自动关闭流资源
        try (FileOutputStream fileOutputStream = new FileOutputStream(SERIALIZE_FILE_PATH);
             ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)) {

            // 执行序列化操作
            objectOutputStream.writeObject(person);
            System.out.println("序列化成功！文件路径：" + SERIALIZE_FILE_PATH);

        } catch (Exception e) {
            System.err.println("序列化失败：" + e.getMessage());
            e.printStackTrace();
        }
    }
}